import java.util.Date;
import java.util.Vector;

public class Controlador {

	private Vector<Material> materiales;
	private Vector<Prenda> prendas;
	private Vector<Factura> facturas;
	
	public void altaFactura(Date fecha, Vector<DetalleFactura> detalle) {
		
		Factura factura = new Factura(fecha);
		for (int i = 0; i < detalle.size(); i++) {
			factura.setDetalle(detalle.elementAt(i).getCantidad(), detalle.elementAt(i).getPrenda());
		}
		
	}
	public void altaPrendaTemporada(int codigo, String nombre, int precio, String estacion, Vector<DetallePrenda> detalles) {
		DetallePrenda detallePrenda = null; 
		PrendaTemporada prenda = null;
		Material material = null;

		for(int i=0; i < detalles.size() || detalles.elementAt(i).getMaterial() != detallePrenda.getMaterial(); i++){
			material = buscarMaterial(detalles.elementAt(i).getMaterial());	
		}
		
		if(material != null) {
		
			PrendaTemporada prendaTemporada = (PrendaTemporada) this.buscarPrenda(codigo);
			if(prendaTemporada==null){
					prendaTemporada = new PrendaTemporada(codigo, nombre, precio, estacion, detalles);
				  prendas.add(prendaTemporada);
			}

		}
		
	}
	
	public void altaPrendaSinTemporada(int codigo,String nombre,int precio,Vector<DetallePrenda>detalles) {
		
		DetallePrenda detallePrenda = null; 
		Material mat = buscarMaterial(codigo);
		if(mat==null){
			mat = new Material(codigo, nombre, cantidad, puntoPedido, proveedor, precio);
			materiales.add(mat);
		}
		
		PrendaSinTemporada prendaSinTemporada = (PrendaSinTemporada) this.buscarPrenda(codigo);
		if(prendaSinTemporada==null){
			  prendaSinTemporada = new PrendaSinTemporada(codigo, nombre, precio, detalles);
			  prendas.add(prendaSinTemporada);
		}

		
		
	}
	
	private Prenda buscarPrenda(int codigo) {
		for(int i=0; i < prendas.size(); i++) {

			if(prendas.elementAt(i).sosLaPrenda(codigo)) {
				return prendas.elementAt(i);
			}
		}
		return null;
	}
	
	private Material buscarMaterial(int codigo) {
		for(int i=0; i < materiales.size(); i++) {

			if(materiales.elementAt(i).sosElMaterial(codigo)) {
				return materiales.elementAt(i);
			}
		}
		return null;
	}
	
	public void bajaPrenda(int codigo) {
		Prenda prenda;
		prenda = buscarPrenda(codigo);
		
		if(prenda != null){
			prenda.setCantidad(0);
		}
	}
}